Skip to main content

2. 데이터베이스

WePLi 서비스는 사용자가 자신만의 음악 플레이리스트를 만들고, 다른 사용자와 공유할 수 있는 플랫폼입니다.
이 문서에서는 데이터베이스 스키마와 설계 시의 명명 규칙, 그리고 사용된 도구에 대해 설명합니다.

WePLi Database Schema

1. 사용자 테이블

Users

컬럼명데이터 타입설명제약 조건
idINTEGER사용자 고유 IDPrimary Key
emailVARCHAR사용자의 이메일 주소Not Null, Unique
usernameVARCHAR사용자 이름Not Null
profile_imgVARCHAR프로필 이미지 URL
tendencyTendency사용자 성향Enum
created_atTIMESTAMP사용자 등록 시각Default Now()
updated_atTIMESTAMP사용자 정보 수정 시각

2. 게시글 테이블

Posts

컬럼명데이터 타입설명제약 조건
idINTEGER게시글 고유 IDPrimary Key
titleVARCHAR게시글 제목
contentsTEXT게시글 내용
user_idINTEGER작성자 IDForeign Key
like_cntINTEGER좋아요 수Default 0
comment_cntINTEGER댓글 수Default 0
created_atTIMESTAMP게시글 생성 시각Default Now()
updated_atTIMESTAMP게시글 수정 시각

3. 게시글 좋아요 테이블

PostLike

컬럼명데이터 타입설명제약 조건
user_idINTEGER좋아요를 누른 사용자 IDForeign Key
post_idINTEGER좋아요가 눌린 게시글 IDForeign Key

4. 게시글 스크랩 테이블

PostScrap

컬럼명데이터 타입설명제약 조건
user_idINTEGER스크랩한 사용자 IDForeign Key
post_idINTEGER스크랩된 게시글 IDForeign Key

5. 댓글 테이블

Comments

컬럼명데이터 타입설명제약 조건
idINTEGER댓글 고유 IDPrimary Key
parent_idINTEGER부모 댓글 ID
post_idINTEGER댓글이 속한 게시글 IDForeign Key
user_idINTEGER댓글 작성자 IDForeign Key
contentsVARCHAR댓글 내용
like_cntINTEGER댓글의 좋아요 수Default 0
created_atTIMESTAMP댓글 생성 시각Default Now()
updated_atTIMESTAMP댓글 수정 시각

6. 댓글 좋아요 테이블

CommentLike

컬럼명데이터 타입설명제약 조건
user_idINTEGER댓글에 좋아요를 누른 사용자 IDForeign Key
comment_idINTEGER좋아요가 눌린 댓글 IDForeign Key

7. 플레이리스트 테이블

Playlist

컬럼명데이터 타입설명제약 조건
idINTEGER플레이리스트 고유 IDPrimary Key
titleVARCHAR플레이리스트 제목Not Null
subscriptionVARCHAR구독자 수
thumbnailVARCHAR썸네일 이미지 URL
user_idVARCHAR생성자 사용자 IDForeign Key
song_cntINTEGER포함된 노래 수Default 0
vote_cntINTEGER투표 수Default 0
created_atTIMESTAMP플레이리스트 생성 시각Default Now()
updated_atTIMESTAMP플레이리스트 수정 시각

8. 릴레이 리스트 테이블

Relaylist

컬럼명데이터 타입설명제약 조건
idINTEGER릴레이 리스트의 고유 IDPrimary Key
titleVARCHAR릴레이 리스트 제목
subscriptionVARCHAR구독자 수
thumbnailVARCHAR썸네일 이미지 URL
user_idVARCHAR생성자 사용자 IDForeign Key
song_cntINTEGER포함된 노래 수Default 0
vote_cntINTEGER투표 수Default 0
end_dateTIMESTAMP종료 날짜
created_atTIMESTAMP릴레이 리스트 생성 시각Default Now()
updated_atTIMESTAMP릴레이 리스트 수정 시각

9. 노래 테이블

Songs

컬럼명데이터 타입설명제약 조건
idINTEGER노래 고유 IDPrimary Key
titleVARCHAR노래 제목
singerVARCHAR가수
albumVARCHAR앨범 이름
cover_imgVARCHAR커버 이미지 URL

10. 차트 테이블

Chart

컬럼명데이터 타입설명제약 조건
idINTEGER차트 고유 IDPrimary Key
titleVARCHAR차트 제목
singerVARCHAR가수
albumVARCHAR앨범 이름
cover_imgVARCHAR커버 이미지 URL

11. 플레이리스트 수록곡 테이블

PlaylistBsideTrack

컬럼명데이터 타입설명제약 조건
playlist_idINTEGER해당 플레이리스트의 IDForeign Key
song_idINTEGER플레이리스트에 포함된 노래의 IDForeign Key
vote_cntINTEGER해당 트랙에 대한 투표 수Default 0

12. 릴레이리스트 수록곡 테이블

RelaylistBsideTrack

컬럼명데이터 타입설명제약 조건
relaylist_idINTEGER해당 릴레이 리스트의 IDForeign Key
song_idINTEGER릴레이 리스트에 포함된 노래의 IDForeign Key
vote_cntINTEGER해당 트랙에 대한 투표 수Default 0